#ifndef BOX_H
#define BOX_H

#include <QWidget>
#include <QFontMetrics>
class Box : public QWidget
{
    Q_OBJECT
public:
    explicit Box(QWidget *parent = nullptr):QWidget(parent){}

    QString insertNewLinesForLabel(QFont font, const QString &text, int maxWidth) {
        QFontMetrics metrics(font); // 使用label的字体
        QString result = "";
        QString currentLine = "";
        int lineWidth = 0;

        for (QChar ch : text) {
            // 假设空格不占额外的宽度（这可能不总是准确的，取决于字体）
            // 或者，你可以测量空格的宽度并相应地调整
            int charWidth = metrics.horizontalAdvance(ch);

            if (lineWidth + charWidth > maxWidth) {
                // 当前行已经太宽，添加换行符并开始新行
                result += currentLine + "\n";
                currentLine = "";
                lineWidth = 0;
            }

            currentLine += ch;
            lineWidth += charWidth;
        }

        // 添加最后一行（如果有的话）
        if (!currentLine.isEmpty()) {
            result += currentLine;
        }
        return result;
    }
    //设置头像
    virtual void setAvatar(const QPixmap avatar){Q_UNUSED(avatar)};
    //设置内容文字，可选
    virtual void setText(const QString text){Q_UNUSED(text)};
    //设置图片，可选
    virtual void setImg(const QPixmap img){Q_UNUSED(img)};
    //获取控件大小
    virtual QSize getSize(){return QSize();};
signals:
    void s_addFavorite(QString filepath,QString filename,QString datetime);
};

#endif // BOX_H
